﻿//MINIPROTOTYPE
function checkBrowse()
{
    if(navigator.userAgent.toLowerCase().indexOf('msie')>0)window.brw='ie';
    else if(navigator.userAgent.toLowerCase().indexOf('firefox')>0)window.brw='ff';
    else window.brw='ie';
    if(brw!='ie')
    {
        if( document.implementation.hasFeature("XPath", "3.0") )
        {
            XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
            {
                if( !xNode )
                {
                    xNode = this;
                }
                var oNSResolver = this.createNSResolver(this.documentElement);
                var aItems = this.evaluate(cXPathString, xNode, oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
                var aResult = [];
                for( var i = 0; i < aItems.snapshotLength; i++)
                {
                    aResult[i] = aItems.snapshotItem(i);
                }
                return aResult;
            };
            Element.prototype.selectNodes = function(cXPathString)
            {
                if(this.ownerDocument.selectNodes)
                {
                    return this.ownerDocument.selectNodes(cXPathString, this);
                }
                else
                {
                    throw "For XML Elements Only";
                }
            };
            XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
            {
                if( !xNode )
                {
                    xNode = this;
                }
                var xItems = this.selectNodes(cXPathString, xNode);
                if( xItems.length > 0 )
                {
                    return xItems[0];
                }
                else
                {
                    return null;
                }
            };
            Element.prototype.selectSingleNode = function(cXPathString)
            {
                if(this.ownerDocument.selectSingleNode)
                {
                    return this.ownerDocument.selectSingleNode(cXPathString, this);
                }
                else
                {
                    throw "For XML Elements Only";
                }
            };
        }
    XMLDocument.prototype.loadXML = function(xmlString)
    {
        var childNodes = this.childNodes;
        for (var i = childNodes.length - 1; i >= 0; i--)this.removeChild(childNodes[i]);
        var dp = new DOMParser();
        var newDOM = dp.parseFromString(xmlString, "text/xml");
        var newElt = this.importNode(newDOM.documentElement, true);
        this.appendChild(newElt);
    };
    XMLDocument.prototype.__proto__.__defineGetter__("xml", function ()
    {
        try
        {
            return new XMLSerializer().serializeToString( this );
        }
        catch (ex)
        {
            var d=document.createElement("div");
            d.appendChild( this .cloneNode( true ));
            return d.innerHTML;
        }
    });
    
    Element.prototype.__proto__.__defineGetter__("xml", function ()
    {
        try
        {
            return new XMLSerializer().serializeToString( this );
        }
        catch (ex)
        {
            var d = document.createElement("div");
            d.appendChild( this .cloneNode( true ));
            return d.innerHTML;
        }
    });
    
    XMLDocument.prototype.__proto__.__defineGetter__("text" , function ()
    {
        return this.firstChild.textContent
    });
    
    Element.prototype.__proto__.__defineGetter__("text" , function ()
    {
        return this.textContent
    });
}

    if(!window.XMLHttpRequest)
    {
        window.XMLHttpRequest=function()
        {
            var xmlHttp=null;
            var progids=['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
            for(var i=0;i<progids.length;i++)
            {
                try
                {
                    xmlHttp=new ActiveXObject(progids[i]);
                    break;
                }
                catch(e)
                {
                }
            }
            if(xmlHttp==null)
            {
                alert('无法创建对象');
            }
            return xmlHttp;
        };
    }
}